//
//  CYHUD+LoadingText.m
//  CYBaseKit
//
//  Created by admin on 2022/10/8.
//

#import "CYHUD+LoadingText.h"

#import "SVProgressHUD.h"
#import "CYHUD+Config.h"


@implementation CYHUD (LoadingText)

/**
 * 纯loading
 */
+ (void)showLoading {
    [self showLoadingInView:nil];
}

+ (void)showLoadingInView:(UIView *)inView {
    [self showLoadingAndText:nil inView:inView];
}


/**
 * 纯文字
 * @param text 显示的文字
 */
+ (void)showText:(NSString *)text {
    [self showText:text inView:nil];
}


+ (void)showText:(NSString *)text inView:(UIView *)inView {
    [self hideLoadingHUD];

    if (inView) {
        [self resetHUDInViewStyleWithInView:inView];
    } else {
        [self resetHUDDefaultStyle];
    }

    [SVProgressHUD showImage:[UIImage imageNamed:@""] status:text];

    [SVProgressHUD dismissWithDelay:CY_HUD_DISPLAY_TIME_DEFAULT];
}

/**
 * 加载中+文字提示（文字可为空）
 * 文字为空, 或者@"" 效果等同于showLoading
 * @param text 显示的文字
 */
+ (void)showLoadingAndText:(NSString *__nullable)text; {
    [self showLoadingAndText:text inView:nil];
}

+ (void)showLoadingAndText:(NSString *)text inView:(UIView *)inView {
// 如果当前视图还有其他提示框，就dismiss
    [self hideLoadingHUD];

    if (inView) {
        [self resetHUDInViewStyleWithInView:inView];
    } else {
        [self resetHUDDefaultStyle];
    }

    // 加载中的提示框一般不要不自动dismiss，比如在网络请求，要在网络请求成功后调用 hideLoadingHUD 方法即可
    if (text && ![text isEqualToString:@""]) {
        [SVProgressHUD showWithStatus:text];
    } else {
        [SVProgressHUD show];
    }
}
@end
